home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1993 / Internet Info CD-ROM (Walnut Creek) (1993).iso / standards / CCITT / 1992 / X / x407.asc < prev    next >
Encoding:
Text File  |  1993-07-15  |  61.8 KB  |  1,199 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Recommendation X.407
  8.  
  9.             MESSAGE HANDLING SYSTEMS ABSTRACT SERVICE
  10.                     DEFINITION CONVENTIONS  1
  11.  
  12.  
  13.  
  14. The establishment in various countries of telematic services  and  computer-based
  15. store-and-forward message services in association with public data networks creates a 
  16. need to produce standards to facilitate international  message  exchange  between
  17. subscribers to such services.
  18.  
  19.  The CCITT,
  20.  
  21. considering
  22.  
  23. (a) the need for Message Handling Systems;
  24. (b) that Message Handling is a complex distributed information processing task;
  25. (c) that a means for abstractly defining such tasks is required;
  26. (d) that Recommendation  X.200  defines  the  Reference  Model  of  Open  Systems
  27. Interconnection for CCITT applications;
  28. (e) that Recommendations X.208, X.217, X.218, and X.219 provide the foundation for CCITT 
  29. applications;
  30. unanimously declares
  31. (1) that conventions for defining abstract services are defined in section two;
  32. (2) that techniques for the realization of abstract services so defined are discussed in 
  33. section three.
  34.  
  35. Table of Contents
  36. Section One - Introduction
  37. 0.  Introduction
  38. 1.  Scope
  39. 2.  References
  40. 3.  Definitions
  41. 4.  Abbreviations
  42. 5.  Conventions
  43. 5.1 ASN.1
  44. 5.2 Terms
  45. Section TWO - Abstract Service Definition Conventions
  46. 6.  Overview
  47. 7.  Abstract Models
  48. 7.1 Abstract Objects
  49. 7.2 Abstract Ports
  50. 7.3 Abstract Services
  51. 7.4 Abstract Refinements
  52. 8.  Abstract Services
  53. 8.1 Abstract Procedures
  54. 8.2 Abstract Bind Operations
  55. 8.3 Abstract Unbind Operations
  56. 8.4 Abstract Operations
  57. 8.5 Abstract Errors
  58. Section Three - Abstract Service Realizations
  59. 9.  Overview
  60. 10. OSI Realizations
  61. 10.1ROS Realizations
  62. 10.2Non-ROS Realizations
  63. 11. Proprietary Realizations
  64. 11.1Distributed Realizations
  65. 11.2Non-distributed Realizations
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77. Annexes
  78. A   Example of Use of Abstract Service Notation
  79. A.1 Assignment of Object Identifiers
  80. A.2 Refinement of Yellow Environment
  81. A.3 Definition of Yellow Abstract Service
  82. A.4 Refinement of Green Environment
  83. A.5 Definition of Green Abstract Service
  84. A.6 Refinement of Yellow System
  85. A.7 Realization of Yellow System
  86. A.8 Realization of Green System
  87. B   Reference Definition of Object Identifiers
  88. C   Reference Definition of Notation
  89. D   Differences Between CCITT Recommendation and ISO Standard
  90. E   Index
  91. CCITT Draft Recommendation X.407 MHS: Abstract Service Definition Conventions (Version 
  92. 5, November 1987, Gloucester)
  93. -- --
  94. Section One - Introduction
  95. 0.  Introduction
  96. This Recommendation is one of a set of Recommendations for Message Handling. The entire 
  97. set provides a comprehensive blueprint for a Message Handling System (MHS) realized by 
  98. any number of cooperating open systems.
  99. The Message Handling System made possible by  these  Recommendations  is  a  complex
  100. distributed information processing task, many of whose components themselves have these 
  101. characteristics.
  102. This Recommendation specifies the conventions for defining the distributed information 
  103. processing tasks of Message Handling and may also be useful for other applications.
  104. The text of this Recommendation is the subject of  joint  CCITT-ISO  agreement.  The
  105. corresponding ISO specification is ISO 10021-4.
  106. 1.  Scope
  107. This Recommendation specifies  the  conventions  used  to  specify  the  distributed
  108. information processing tasks that arise in Message Handling.
  109. This Recommendation is structured as follows. Section one is this introduction. Section 
  110. two specifies the conventions for defining a distributed information processing task 
  111. abstractly. Section three gives principles for realizing the communication aspects of 
  112. such tasks concretely, such as by Open Systems Interconnection (OSI) protocols. Annexes 
  113. provide important supplemental information.
  114. There are no requirements for conformance to this Recommendation.
  115. 2.  References
  116. This Recommendation cites the documents below.
  117.  
  118. X.200   Basic reference model (see also ISO 7498).
  119.  
  120. X.208   Specification of abstract syntax notation one (ASN.1) (see also ISO 8824).
  121.  
  122. X.209   Specification of basic encoding rules for abstract syntax notation one (ASN.1) 
  123. (see also ISO 8825).
  124.  
  125. X.217   Association control: Service definition (see also ISO 8649).
  126.  
  127. X.219   Remote operations: Model, notation and service definition (see also ISO 9072-1).
  128.  
  129. 3.  Definitions
  130. For the purposes of this Recommendation, the definition of Annex E and below apply.
  131. This Recommendation is based upon the concepts developed in Recommendation X.200 and 
  132. uses the following terms defined in it:
  133. a)  abstract syntax;
  134. b)  Application Layer;
  135. c)  application protocol data unit (.I.ab:APDU;);
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142. d)  application protocol;
  143. e)  application service element (.I.ab:ASE;);
  144. f)  concrete transfer syntax;
  145. g)  distributed information processing task;
  146. h)  layer service;
  147. i)  layer;
  148. j)  open system;
  149. k)  Open Systems Interconnection (.I.ab:OSI;); and
  150. l)  real open system.
  151. This Recommendation uses the following terms defined in Recommendation X.208:
  152. a)  Abstract Syntax Notation One (.I.ab:ASN.1;);
  153. b)  (data) type;
  154. c)  (data) value;
  155. d)  import;
  156. e)  Integer;
  157. f)  macro;
  158. g)  module;
  159. h)  Object Identifier; and
  160. i)  tag.
  161. This Recommendation uses the following terms defined in Recommendation X.209:
  162. a)  Basic Encoding Rules.
  163. This Recommendation uses the following terms defined in Recommendation X.217:
  164. a)  application context (.I.ab:AC;).
  165. This Recommendation uses the following terms defined in Recommendation X.219:
  166. a)  bind operation;
  167. b)  error;
  168. c)  linked;
  169. d)  operation;
  170. e)  Remote Operation Service (.I.ab:ROS;);
  171. f)  Remote Operations; and
  172. g)  unbind operation.
  173. 4.  Abbreviations
  174. For the purposes of this Recommendation, the abbreviations of annex E apply.
  175. 5.  Conventions
  176. This Recommendation uses the descriptive conventions identified below.
  177. 5.1 ASN.1
  178.  
  179.    This Recommendation uses for the indicated purposes the following         ASN.1-based 
  180. descriptive conventions.
  181.  
  182. a)  To define the OBJECT, PORT, and REFINE  macros,  the  ASN.1  macro  notation  of
  183. Recommendation X.208.
  184. b)  To define the ABSTRACT-BIND, -UNBIND, -OPERATION, and -ERROR macros,  the  BIND,
  185. UNBIND, OPERATION, and ERROR macros of Recommendation X.219.
  186. c)  To specify the abstract syntax of information objects in the example of annex A, 
  187. ASN.1 itself.
  188. d)  To specify various abstract models in the example of annex A, the OBJECT, PORT, and 
  189. REFINE macros of clause 7.
  190. e)  To specify various abstract services in the example of annex A, the ABSTRACT-BIND, - 
  191. OPERATION, and -ERROR macros of clause 8.
  192. ASN.1 appears both in the body of this Recommendation to aid the exposition and again, 
  193. largely redundantly, in annexes for reference. If differences are found between the two, 
  194. a specification error is indicated.
  195. Note that ASN.1 tags are implicit throughout the ASN.1 modules in the  annexes;  the
  196. modules are definitive in that respect.
  197. 5.2 Terms
  198. Throughout this Recommendation, terms are rendered in bold when defined, in italic when 
  199. referenced prior to their definitions, without emphasis upon all other occasions.
  200. Terms that are proper nouns are capitalized, generic terms are not.
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213. Section TWO - Abstract Service Definition Conventions
  214. 6.  Overview
  215. When faced with the job of describing and specifying a complex distributed information 
  216. processing task, one is wise to begin by specifying the task in abstract, rather than 
  217. concrete terms. This approach ensures that the task's functional requirements are stated 
  218. independently of its concrete realization. Such separation is important, among other 
  219. reasons, because each aspect of the task may admit of several concrete realizations. In 
  220. a Message Transfer System comprising three message transfer agents, e.g., the first and 
  221. second might interact using OSI communication, the second and third  by  proprietary
  222. means.
  223. This section specifies the  conventions  for  abstractly  describing  a  distributed
  224. information processing task both macroscopically  and  microscopically.  The  former
  225. description is called an abstract model, the latter an abstract service.
  226. Various formal tools for specifying abstract models and services are defined in this 
  227. section. A comprehensive example of their use is given in annex A. The reader may wish 
  228. to refer to that annex--e.g., to its illustrations--while reading the present section.
  229. This section covers the following topics:
  230. a)  Abstract models
  231. b)  Abstract services
  232. Note   The formal tools mentioned above are neither a formal description language nor a 
  233. substitute therefor. They are simply  ASN.1  notation  that  supports  the  informal
  234. descriptive conventions this section defines.
  235. 7.  Abstract Models
  236. A macroscopic description of a distributed information processing task is called  an
  237. .I.gl:abstract model; (.I.gl:model;) of that task and of the environment in which it is 
  238. carried out. It is based upon the concepts of abstract objects, ports, services, and 
  239. refinements. (The concept of an abstract service is much more fully developed in clause 
  240. 8.)
  241. 7.1 Abstract Objects
  242. An .I.gl:abstract object; (.I.gl:object;) is a functional entity, one of perhaps several 
  243. which interact with one another. Objects are of different types which determine their 
  244. function and behavior. An object of one type, e.g., might represent a system, multiple 
  245. objects of another type its users. Objects interact by means of abstract ports.
  246. An object type is specified by means of the OBJECT macro. Such a specification lists the 
  247. types of abstract ports that provide access to such an object. For each assymetric port 
  248. type, the specification indicates whether the ports of that  type  are  consumer  or
  249. supplier ports.
  250. .I.ma:OBJECT; MACRO ::= BEGIN  TYPE  NOTATION ::= "PORTS" "{" PortList "}" | empty VALUE 
  251. NOTATION ::= value (VALUE OBJECT IDENTIFIER)  PortList       ::= Port "," PortList | 
  252. Port Port           ::= value (PORT) PortType  PortType       ::= Symmetric | Asymmetric 
  253. Symmetric      ::= empty Asymmetric     ::= Consumer | Supplier  Consumer        ::=
  254. "[C]" Supplier       ::= "[S]"  END
  255.  
  256.        A data value of type OBJECT is an Object Identifier  that  unambiguously  and
  257. uniquely identifies the specified object type.
  258.  
  259. Note - The keyword "OBJECT" is reserved in ASN.1. Selection of a suitable replacement 
  260. for use in the present context is for further study.
  261.  
  262. 7.2    Abstract Ports
  263.  
  264.        An abstract port (port) is a point at which an abstract object interacts with 
  265. another abstract object. Ports are of different types which determine the  kinds  of
  266. interactions they enable. Ports of one type, e.g., might represent the means by which a 
  267. directory system is accessed, ports of  another  type  the  means  by  which  it  is
  268. administered.
  269. Port types are themselves of the following two varieties:
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.        a)   symmetric: All instances of a symmetric port type are identical.
  278.  
  279.        b)   asymmetric: Each instance of an asymmetric port type is of one of two 
  280.             kinds, supplier and consumer.
  281.  
  282. Note - A particular allocation of the terms "supplier" and "consumer"  is  often
  283. intuitive. One might naturally consider a file system, e.g., to present supplier 
  284. ports to its users and administrators. Strictly speaking, however, the assignment of 
  285. the two terms is arbitrary.
  286.  
  287.        Two objects can interact with one another by means of a port in one and a 
  288. port in the other only while those ports are in contact with one another, or bound. 
  289. The actions by means of which this state is initiated and terminated for one or more 
  290. port pairs are called binding and unbinding, respectively.
  291.  
  292.        Two ports can be bound only if they match. Any two  ports  of  the  same,
  293. symmetric type match. Two ports of the same, asymmetric type match if and only if 
  294. one is a supplier, the other a consumer.
  295.  
  296.        A port type is specified by means of the PORT macro. Such a specification 
  297. identifies the abstract operations that represent the interactions possible while 
  298. two such ports are bound. If none is listed, the abstract  operations  shall  be
  299. considered unspecified.
  300.  
  301. .I.ma:PORT; MACRO ::= BEGIN  TYPE  NOTATION ::= Operations | empty VALUE NOTATION 
  302. ::= value (VALUE OBJECT IDENTIFIER)  Operations     ::= Symmetrical | Asymmetrical 
  303. Symmetrical    ::= "ABSTRACT" "OPERATIONS" "{" OperationList "}" Asymmetrical   ::= 
  304. OneSided | TwoSided  OneSided       ::= Consumer | Supplier  TwoSided        ::=
  305. Consumer Supplier | Supplier Consumer  Consumer       ::= "CONSUMER" "INVOKES" "{" 
  306. OperationList "}" Supplier       ::= "SUPPLIER" "INVOKES" "{" OperationList  "}"
  307. OperationList  ::= Operation "," OperationList | Operation Operation      ::= value 
  308. (ABSTRACT-OPERATION)  END
  309.  
  310.        If the port type is symmetric, both objects  offer  all  listed  abstract
  311. operations. If the port type is asymmetric, the macro distinguishes between  the
  312. abstract operations an object with the consumer port offers and those an object with 
  313. the supplier port offers.
  314.  
  315.        A data value of type PORT is an Object Identifier that unambiguously  and
  316. uniquely identifies the specified port type.
  317.  
  318. 7.3    Abstract Services
  319.  
  320.        An abstract service is the set of capabilities that one object offers  to
  321. another by means of one or more of its ports. The former  object  is  called  an
  322. abstract service provider (provider), the latter an abstract service user (user). 
  323. Each port in question may be either symmetric or asymmetric and, if the  latter,
  324. either consumer or supplier.
  325.  
  326.        An abstract service may have any number of users and providers.
  327.  
  328.        Whenever the abstract service ports of a provider are bound to the matching 
  329. ports of a user, an abstract association (or association is said to exist between 
  330. the two objects.
  331.  
  332.        An abstract service is specified as indicated in clause 8.
  333.  
  334. Note - An abstract service serves much the same purpose within the Application Layer 
  335. as does one of the layer services of lower OSI layers.
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348. 7.4    Abstract Refinements
  349.  
  350.        An object can be viewed in different ways at  different  times.  On  some
  351. occasions it is convenient to think of an object as atomic. This is the case, e.g., 
  352. when describing how an object interacts with other objects external to it, i.e., 
  353. when specifying its abstract service. On other occasions, it may be more convenient 
  354. to think of an object as composite, i.e., constructed from other objects. This might 
  355. be the case, e.g., when describing how an object is realized.
  356.  
  357.        Like any objects, component objects have ports. Some are those visible on 
  358. the "surface" of the constructed object. Others enable the component objects  to
  359. interact, thus supporting the provision and use of lesser abstract services among 
  360. the component objects, which cooperate to provide the overall abstract service of 
  361. the constructed object.
  362.  
  363.        The functional decomposition of an object into several lesser objects  is
  364. called the abstract refinement (refinement) of that object.
  365.  
  366.        The technique of refinement can be applied recursively. A component object 
  367. can itself be refined to reveal its internal structure. This can continue until one 
  368. reaches component objects best considered atomic.
  369.  
  370.        A refinement is specified by means of the REFINE macro. It identifies the 
  371. object whose internal structure is being revealed and the component objects used in 
  372. its construction. Each component object is characterized  as  either  unique  or
  373. recurring. The macro also indicates which ports of component objects are bound to 
  374. ports of other component objects, and which are visible at the  surface  of  the
  375. composite object.
  376. .I.ma:REFINE; MACRO ::= BEGIN  TYPE  NOTATION ::= Object "AS" ComponentList VALUE 
  377. NOTATION ::= value  (VALUE  OBJECT  IDENTIFIER)   ComponentList   ::=  Component
  378. ComponentList | Component Component      ::= ObjectSpec Ports  ObjectSpec     ::= 
  379. Object | Object "RECURRING"  Ports          ::= PortSpecList | empty PortSpecList 
  380. ::= PortSpec PortSpecList | PortSpec PortSpec       ::=  value  (PORT)  PortSide
  381. PortStatus  PortSide       ::= Consumer | Supplier | empty Consumer       ::= "[C]" 
  382. Supplier       ::= "[S]"  PortStatus     ::= "VISIBLE" | "PAIRED" "WITH" ObjectList 
  383. ObjectList     ::= Object "," ObjectList | Object Object         ::= value (OBJECT) 
  384. END
  385.  
  386. A data value of type REFINE is an Object Identifier.
  387. Note   As with objects themselves, ports, in principle, can be viewed in different 
  388. ways at different times. On some occasions, it is convenient to think of a  port
  389. (pair) as atomic. However, one can imagine refining a port itself to examine how 
  390. communication of this type can be provided. In this view, a port pair is  itself
  391. viewed as being supported by a collection of objects. This would enhance the ability 
  392. to specify communications capabilities. This "port refinement"  concept  is  not
  393. pursued further in this version of this Recommendation.
  394. 8.  Abstract Services
  395. A microscopic description of a distributed  information  processing  task  is  a
  396. specification of the abstract service that defines how the  task  is  initiated,
  397. controlled, and terminated. It is based  upon  the  concepts  of  abstract  bind
  398. operations, unbind operations, operations, and errors, as well as  the  enabling
  399. concept of abstract procedures.
  400. Note   The macros defined below imply use of ASN.1 to specify arguments, results, 
  401. and parameters. Any context-specific tags, e.g., assigned in the course  of  the
  402. specifications, although meaningless in that context, play an important role in a 
  403. ROS realization of the abstract service.
  404. 8.1 Abstract Procedures
  405. An .I.gl:abstract procedure; (.I.gl:procedure;) is a task that one object carries 
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412. out at another's request. The making of the request and the carrying out of the task 
  413. are called the .I.gl:invocation; and .I.gl:performance; of  the  procedure.  The
  414. objects that issue and act upon the request are called  the  .I.gl:invoker;  and
  415. .I.gl:performer;, respectively.
  416. A procedure may (but need not) require that an invoker, upon invocation, supply to 
  417. the performer a single information object of a prescribed type, which is called the 
  418. procedure's .I.gl:argument;.
  419. Every performance of every procedure has an outcome, success or failure. A procedure 
  420. is considered to succeed if it is carried out in full, to fail if it is terminated 
  421. prematurely.
  422. A procedure may (but need not) require that the performer apprise the invoker of 
  423. success. It may (but need not) further require that it  supply,  when  reporting
  424. success, a single information object of a prescribed type, which is  called  the
  425. procedure's .I.gl:result;.
  426. A procedure may (but need not) require that the performer apprise the invoker of 
  427. failure. It may (but need not) further require that it supply certain information 
  428. when reporting failure.
  429. Note   In subsequent clauses ASN.1 is prescribed as the means for specifying the 
  430. abstract syntax of the arguments and results of procedures (as well  as  of  the
  431. parameters of abstract errors). These uses of ASN.1  do  not  imply  that  these
  432. information objects are necessarily transported between open systems. In particular, 
  433. the fact that the information objects, by virtue of their description in ASN.1 and 
  434. of its Basic Encoding Rules, have concrete transfer syntaxes is immaterial in the 
  435. present context. ASN.1 is simply a convenient tool for formally  describing  the
  436. information objects' abstract syntax.
  437. 8.2 Abstract Bind Operations
  438. An .I.gl:abstract bind operation; is a procedure whose successful performance binds 
  439. one or more pairs of abstract ports. The object which invokes an  abstract  bind
  440. operation is said to  be  the  .I.gl:initiator;,  that  which  performs  it  the
  441. .I.gl:responder;.
  442. An abstract bind operation is suitable for binding a particular set of ports of the 
  443. initiator to a matching set of the responder. Where one or more ports in the set are 
  444. asymmetric, the abstract bind operation may be suitable for binding to the consumer 
  445. side only, the supplier side only, or to either.
  446. An abstract bind operation is a fully general procedure except that, if information 
  447. is conveyed to the invoker upon failure, it is constrained to a single information 
  448. object, called .I.gl:error information;.
  449. An abstract bind operation is specified by means of the ABSTRACT-BIND macro whose 
  450. definition is as follows:
  451. .I.ma:ABSTRACT-BIND; MACRO ::= BEGIN  TYPE NOTATION  ::= Ports Bind VALUE NOTATION 
  452. ::= value (VALUE BindType)  Ports          ::= "TO" "{"  PortList  "}"  |  empty
  453. PortList       ::= Port "," PortList | Port Port           ::= value (PORT) PortSide 
  454. PortSide       ::= Consumer | Supplier | empty Consumer       ::= "[C]" Supplier 
  455.  ::=  "[S]"   Bind            ::=  type  (BindType)  --  must  be  a  BIND  type
  456.    | empty <BindType ::= BIND>  END
  457. The "Ports" clause, introduced by the keyword "TO", lists the ports of a responder 
  458. which this abstract bind operation will bind. If an asymmetric port is listed there, 
  459. without being qualified by "[S]" or "[C]", this means  that  the  abstract  bind
  460. operation is suitable for use in binding such a port in either direction.
  461. Note that the specification of the argument, result, and/or error information is 
  462. accomplished by means of an (embedded) BIND macro of Remote Operations, defined in 
  463. Recommendation X.219, and it is a value of such a type that the macro returns. If 
  464. none is provided, the default "BIND" is returned.
  465. Note   The relationship of ABSTRACT-BIND and BIND can help make trivial the  ROS
  466. realization of an abstract service; see clause 10.1.
  467. An abstract service typically comprises an abstract bind operation for each type of 
  468. port involved in its provision. When several port types are involved, their abstract 
  469. bind operations may but need not be distinct.
  470. 8.3 Abstract Unbind Operations
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482. An .I.gl:abstract unbind operation; is a procedure whose performance, successful or 
  483. not, unbinds two ports. It is invoked by the object which invoked the corresponding 
  484. abstract bind (i.e., the initiator) and performed by the responder.
  485. An abstract unbind operation is suitable for unbinding a particular set of ports of 
  486. the initiator from a matching set of the responder. Where one or more ports in the 
  487. set are asymmetric, the abstract unbind operation may be suitable for unbinding from 
  488. the consumer side only, the supplier side only, or either.
  489. An abstract unbind operation is  a  fully  general  procedure  except  that,  if
  490. information is conveyed to the invoker upon failure, it is constrained to a single 
  491. information object, called .I.gl:error information;.
  492. An abstract unbind operation is specified by means of the ABSTRACT-UNBIND  macro
  493. whose definition is as follows:
  494. .I.ma:ABSTRACT-UNBIND; MACRO ::= BEGIN  TYPE NOTATION  ::=  Ports  Unbind  VALUE
  495. NOTATION ::= value (VALUE UnbindType)  Ports          ::= "FROM" "{" PortList "}" 
  496. PortList       ::= Port "," PortList | Port Port           ::= value (PORT) PortSide 
  497. PortSide       ::= Consumer | Supplier | empty Consumer       ::= "[C]"  Supplier 
  498.   ::= "[S]"  Unbind         ::= type (UnbindType) |                       -- must be 
  499. an UNBIND type                    empty <UnbindType ::= UNBIND>  END
  500. The "Ports" clause, introduced by the keyword "FROM", lists the ports of a responder 
  501. from which this abstract unbind operation will unbind. If an asymmetric port  is
  502. listed there, without being qualified by "[S]" or "[C]",  this  means  that  the
  503. abstract unbind operation is suitable for use in unbinding such a port in either 
  504. direction (although the actual direction is determined by the direction in which the 
  505. bind took place).
  506. Note that the specification of the argument, result, and/or error information is 
  507. accomplished by means of an (embedded) UNBIND macro of Remote Operations, defined in 
  508. Recommendation X.219, and it is a value of such a type that the macro returns. If 
  509. none is provided, the default "UNBIND" is returned.
  510. Note   The relationship of ABSTRACT-UNBIND and UNBIND helps make trivial the ROS 
  511. realization of an abstract service; see clause 10.1.
  512. An abstract service typically comprises an abstract unbind operation for each type 
  513. of port involved in its provision. When several port types are  involved,  their
  514. abstract unbind operations may but need not be distinct.
  515. 8.4 Abstract Operations
  516. An .I.gl:abstract operation; is a procedure that may be invoked in the context of 
  517. two bound ports. Its failure has no effect upon the binding. If  the  ports  are
  518. assymmetric, whether the invoker is the object having the consumer port, the object 
  519. having the supplier port, or either is prescribed by the port. If the ports  are
  520. symmetric, the invoker may be either object. Whether the ports are symmetric  or
  521. asymmetric, the remaining object is the performer.
  522. An abstract operation is a fully general procedure except  for  the  information
  523. conveyed to the invoker upon failure. An abstract operation fails when it encounters 
  524. an abstract error, and the information conveyed is constrained to that required to 
  525. report that abstract error. Whether failure is reported and, if so, which abstract 
  526. errors can be encountered are prescribed for each abstract operation.
  527. An abstract operation is specified by means of the ABSTRACT-OPERATION macro. Its 
  528. definition is identical to that of the OPERATION  macro  of  Remote  Operations,
  529. specified in Recommendation X.219.
  530. .I.ma:ABSTRACT-OPERATION; MACRO ::= OPERATION
  531. An abstract service comprises zero or more abstract operations for each type of port 
  532. involved in its provision. When several port types are involved, they may but need 
  533. not have abstract operations in common.
  534. Note   The equivalence of ABSTRACT-OPERATION and OPERATION helps make trivial the 
  535. ROS realization of an abstract service; see clause 10.1.
  536. 8.5 Abstract Errors
  537. An .I.gl:abstract error; is an exceptional condition that may arise  during  the
  538. performance of an abstract operation, causing it to fail.
  539. When an abstract error is reported, the performer conveys  to  the  invoker  the
  540. identity of the abstract error and possibly a single information object called its 
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547. .I.gl:parameter;. Whether a parameter is returned  and,  if  so,  its  type  are
  548. prescribed for each abstract error.
  549. An abstract error is specified by means of the ABSTRACT-ERROR macro. Its definition 
  550. is identical to that of the ERROR  macro  of  Remote  Operations,  specified  in
  551. Recommendation X.219.
  552. .I.ma:ABSTRACT-ERROR; MACRO ::= ERROR
  553. An abstract service comprises the zero or more abstract errors reported  by  its
  554. abstract operations.
  555. Note   The equivalence of ABSTRACT-ERROR and ERROR helps make  trivial  the  ROS
  556. realization of an abstract service; see clause 10.1.
  557.  
  558. Section Three - Abstract Service Realizations
  559. 9.  Overview
  560. Once a distributed information processing task has been described and specified in 
  561. abstract terms, the manner in which each aspect of the task is to be  concretely
  562. realized must be prescribed. As suggested previously, each aspect may  admit  of
  563. several concrete realizations.
  564. This section specifies principles for concretely realizing abstract  models  and
  565. services. A .I.gl:real; x is the computer process or system, or the real open system 
  566. that concretely realizes an abstract object of type x.
  567. This section covers the following topics:
  568. a)  OSI realizations
  569. b)  Proprietary realizations
  570. Note   The aspects of an abstract model stressed here are abstract ports and their 
  571. bindings. This is because abstract ports mark the boundary not only between abstract 
  572. objects but also between the physical systems that concretely realize those abstract 
  573. objects. Thus abstract ports and bindings are the parts of an abstract model that 
  574. must be constructed or constructable with OSI tools if open systems interworking is 
  575. to occur.
  576. 10. OSI Realizations
  577. A primary objective of CCITT Recommendations and ISO Standards is to specify how 
  578. distributed information processing tasks are realized when carried out by several 
  579. cooperating real open systems.
  580. In the OSI environment, objects are realized by means of application  processes,
  581. with, in general, a many-to-many mapping of objects  to  application  processes.
  582. Communication among objects which are realized by application processes in different 
  583. open systems is accomplished by OSI application protocols (consisting of application 
  584. contexts). An application context thus realizes the binding, use, and unbinding of a 
  585. number of port pairs.
  586. The specification of an application context is in terms of the coordinated operation 
  587. of a number of application-service-elements. Realization is therefore particularly 
  588. straightforward to specify  if  an  application-service-element  is  defined  to
  589. correspond to each port whose communication is to be supported. 
  590. The realization of abstract ports and bindings by means of ASEs and ACs is discussed 
  591. below. Both ROS and non-ROS realizations are considered.
  592. 10.1ROS Realizations
  593. The concrete realization of ports and bindings is often trivial when accomplished by 
  594. means of Remote Operations. 
  595. This is true because it is straightforward to define an abstract service which is 
  596. such that there exists a ROS-based application  protocol  that  is  functionally
  597. identical to it. This is true in turn because the framework for the specification of 
  598. abstract services is isomorphic to  that  for  the  specification  of  ROS-based
  599. application protocols. The correspondences behind the isomorphism are listed  in
  600. Table 1/X.407.
  601. Table .T.:1/X.407 Correspondences of Abstract Services and ROS-based Protocols
  602. +---------------------------+--------------------+ | Aspect of                 | 
  603. Aspect of          | | Abstract Service          | ROS-based Protocol | +----------- 
  604. -----------------+--------------------+ | Abstract bind operation   | Bind operation 
  605.    | | Abstract unbind operation | Unbind operation    |  |  Abstract  operation
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617. | Operation          | | Abstract error            | Error              | +--------- 
  618. ------------------+--------------------+
  619. The correspondences of the table arise from the fact that corresponding aspects are 
  620. formally specified using closely-related, or equivalent macros, as summarized in 
  621. Table 2/X.407:
  622. Table .T.:2/X.407 Equivalent Abstract Service and ROS Macros
  623. +------------------------+-----------+ | Abstract Service Macro | ROS Macro | +----- 
  624. --------------------+-----------+ | ABSTRACT-BIND          | BIND      | | ABSTRACT- 
  625. UNBIND        | UNBIND    | | ABSTRACT-OPERATION     | OPERATION | | ABSTRACT-ERROR 
  626.       | ERROR     | +------------------------+-----------+
  627. The definition of ROS-based ASEs and ACs that concretely realize abstract ports is 
  628. explored in annex A by means of an example.
  629. For the realization to be trivial, it is necessary that there be an abstract bind 
  630. operation which binds all of the ports which must be paired.
  631. Note   Where there is more than one port (pair) involved in the abstract service, 
  632. this requires that the abstract bind operation be designed for the particular ports 
  633. involved. There is (currently) no provision for the  automatic  synthesis  of  a
  634. suitable abstract bind based, e.g., upon the definitions of abstract bind operations 
  635. defined for the individual ports.
  636. 10.2Non-ROS Realizations
  637. The concrete realization of ports and bindings is a more substantial  task  when
  638. attempted by means other than Remote Operations, and little can be said about the 
  639. general proposition.
  640. Despite the above, the following two observations are relevant:
  641. a)  The concrete realization of an abstract service as an application protocol is 
  642. greatly simplified by using ASN.1 to define its APDUs. This is  so  because  the
  643. protocol specification can simply import relevant types and values from the abstract 
  644. service specification.
  645. b)  The concrete realization of an abstract service whose abstract operations do not 
  646. report their outcomes is conceptually simple. This is so because each such abstract 
  647. operation represents an interaction comprising a single APDU. From this simplest of 
  648. all possible interactions, arbitrarily complex ones can be constructed.
  649. 11. Proprietary Realizations
  650. A secondary objective of CCITT Recommendations and ISO Standards is to ensure that 
  651. those portions of a distributed information processing task that are carried out by 
  652. proprietary means are accomplished in such  a  way  that  the  intended  overall
  653. functionality of the system is upheld.
  654. The realization of abstract ports and bindings by proprietary means  is  briefly
  655. discussed below. Both distributed and non-distributed realizations are considered.
  656. 11.1Distributed Realizations
  657. The concrete realization of ports and bindings by means of proprietary  computer
  658. communication protocols is a local matter.  The  specification  of  the  visible
  659. functionality embodied in the abstract service provides a guide to the implementors 
  660. of the proprietary realizations, so that, where such realizations are appropriate, 
  661. they may play the appropriate role in the overall task.
  662. 11.2Non-distributed Realizations
  663. The concrete realization of ports and bindings by means of mechanisms wholly within 
  664. a single computer is a local matter. As with the case considered in clause 11.1, the 
  665. abstract service specification serves as a guide to the implementor in ensuring that 
  666. the proprietary realization can nonetheless play the appropriate role in the overall 
  667. task.
  668.  
  669. Annexes
  670. Annex A (to Recommendation X.407) Example of Use of Abstract Service Notation
  671. This annex is not a part of this Recommendation.
  672. This annex illustrates the use of the abstract model and service notation by means 
  673. of an example. The example involves two systems, the Yellow and Green Systems, and 
  674. their environments, the Yellow and Green Environments. 
  675. It uses the abstract model notation to describe the environments separately (clauses 
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682. A.2 and A.4) and to show how their systems are related: one is constructed from the 
  683. other (clause A.6). It uses  the  abstract  service  notation  to  describe  the
  684. capabilities of each system (clause A.3 and A.5). The example concludes by realizing 
  685. the systems' ports as ACs and ASEs using the ROS notation of Recommendation X.219, 
  686. as might be appropriate for OSI communication (clause A.7 and A.8).
  687. A.1 Assignment of Object Identifiers
  688. The ASN.1 modules defined in this annex require the assignment of a  variety  of
  689. Object Identifiers. All are defined  below  using  ASN.1.  The  assignments  are
  690. definitive except for those for ASN.1 modules and the subject of application service 
  691. definition conventions itself. The definitive assignments for the former occur in 
  692. the modules themselves; other references to them appear in IMPORT  clauses.  The
  693. latter is fixed.
  694. ----------
  695. ExampleObjectIdentifiers  {joint-iso-ccitt         mhs(6)   asdc(2)   example(1)
  696. modules(0)  object-identifiers(0)}  DEFINITIONS  IMPLICIT  TAGS  ::=  BEGIN   --
  697. Prologue  -- Exports everything.  IMPORTS -- nothing -- ;  ID ::= OBJECT IDENTIFIER 
  698. -- Abstract Service Definition Conventions Example (not definitive)  id-asdc-ex ID 
  699. ::= {joint-iso-ccitt mhs(6) asdc(2) example(1)} -- not definitive  -- Categories 
  700. id-mod ID ::= {id-asdc-ex 0} -- modules; not definitive id-ot  ID ::= {id-asdc-ex 1} 
  701. -- object types id-pt  ID ::= {id-asdc-ex 2} -- port types id-ref ID ::= {id-asdc-ex 
  702. 3} -- refinements id-ac  ID ::= {id-asdc-ex 4} -- application contexts id-ase ID ::= 
  703. {id-asdc-ex 5} -- application service elements id-as  ID ::= {id-asdc-ex 6}  ---
  704. abstract syntaxes  -- Modules  id-mod-object-identifiers ID ::= {id-mod 0} -- not 
  705. definitive id-mod-ye-refinement      ID ::= {id-mod 1} -- not definitive id-mod-y- 
  706. abstract-service ID ::= {id-mod 2} -- not definitive id-mod-ge-refinement      ID 
  707. ::= {id-mod 3} -- not definitive id-mod-g-abstract-service ID ::= {id-mod 4} -- not 
  708. definitive id-mod-ys-refinement      ID ::= {id-mod 5} -- not definitive id-mod-ys- 
  709. realization     ID ::= {id-mod 6} -- not definitive id-mod-gs-realization     ID ::= 
  710. {id-mod 7} -- not definitive  -- Object types  id-ot-y-environment ID ::= {id-ot 0} 
  711. id-ot-y-user        ID ::= {id-ot 1} id-ot-y-system      ID ::= {id-ot 2} id-ot-g- 
  712. environment ID ::= {id-ot 3} id-ot-g-user        ID ::= {id-ot 4} id-ot-g-manager 
  713. ID ::= {id-ot 5} id-ot-g-system      ID ::= {id-ot 6} id-ot-agent         ID ::= 
  714. {id-ot 7}  -- Port types  id-pt-y-use        ID ::= {id-pt 0} id-pt-g-use        ID 
  715. ::= {id-pt 1} id-pt-g-management ID ::= {id- t  2}   --  Refinements   id-ref-y-
  716. environment ID ::= {id-ref 0} id-ref-g-environment ID ::= {id-ref 1} id-ref-y-system 
  717.     ID ::= {id-ref 2}  -- Application contexts  id-ac-y-use        ID ::= {id-ac 0} 
  718. id-ac-g-use        ID ::= {id-ac 1} id-ac-g-management  ID  ::=  {id-ac  2}   --
  719. Application service elements  id-ase-y-use        ID ::= {id-ase 0} id-ase-g-use 
  720.   ID ::= {id-ase 1} id-ase-g-management ID ::= {id-ase 2}  -- Abstract syntaxes  id- 
  721. as-y-use        ID ::= {id-as 0} id-as-g-use        ID : =  {id-as  1}  id-as-g-
  722. management ID ::= {id-as 2}  END -- of ExampleObjectIdentifiers
  723. A.2 Refinement of Yellow Environment
  724. The Yellow Environment, depicted in Figure 1/X.407, is formally refined below using 
  725. the OBJECT and REFINE macros.
  726. +----+ | 01 | | 02 | | 03 | | 04 | | 05 | | 06 | | 07 | | 08 | | 09 | | 10 | | 11 | 
  727. | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | 
  728. | 24 | | 25 | | 26 | | 27 | | 28 | | 29 | +----+
  729. Figure .F.:1/X.407 The Yellow Environment
  730. As the figure indicates and the ASN.1 specification below confirms,  the  Yellow
  731. Environment can be modeled as an object which can be decomposed into one central 
  732. object, the Yellow System, and any number of other, peripheral  objects,  yellow
  733. users. The Yellow System interacts with yellow users by means of its  yellow-use
  734. ports.
  735. ----------
  736. YellowEnvironmentRefinement  {joint-iso-ccitt      mhs(6)   asdc(2)   example(1)
  737. modules(0) ye-refinement(1)} DEFINITIONS IMPLICIT TAGS ::=  BEGIN   --  Prologue
  738. EXPORTS yellow-environment, yellow-environment-refinement, 
  739. yellow-system, yellow-user;   IMPORTS              --  Yellow  Abstract  Service
  740. yellow-use              ---- FROM YellowAbstractService {joint-iso-ccitt  mhs(6)
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752. asdc(2) example(1) modules(0) y-abstract-service(2)} -- Example Object Identifiers 
  753. id-ot-y-environment, id-ot-y-system, id-ot-y-user, 
  754.  
  755. id-ref-y-environment                                        ----            FROM
  756. ExampleObjectIdentifiers  {joint-iso-ccitt         mhs(6)   asdc(2)   example(1)
  757. modules(0) object-identifiers(0)}                --  Abstract  Service  Notation
  758. OBJECT, REFINE          ---- FROM AbstractServiceNotation {joint-iso-ccitt mhs(6) 
  759. asdc(2) modules(0) notation(1)};  -- Yellow Environment  yellow-environment OBJECT 
  760. ::= id-ot-y-environment  -- Yellow Environme t  refinement   yellow-environment-
  761. refinement REFINE yellow-environment AS yellow-user RECURRING 
  762. yellow-system                                    yellow-use [S] PAIRED WI H  {yellow-
  763. user} ::= id-ref-y-environment  -- Component object types  yellow-user OBJECT PORTS { 
  764. yellow-use [C]}         ::= id-ot-y-user  yellow-system OBJECT PORTS { yellow-use [S]} 
  765. ::= id-ot-y-system  END -- of YellowEnvironmentRefinement
  766. A.3 Definition of Yellow Abstract Service
  767. The abstract service that the Yellow System provides to its users is formally defined 
  768. below using the PORT and ABSTRACT-BIND, -OPERATION, and -ERROR macros.
  769. As the ASN.1 specification indicates, the abstract service  that  the  Yellow  System
  770. provides comprises ports of a single kind, yellow-use. Each port comprises a number of 
  771. abstract operations which collectively report a number of abstract errors. The Yellow 
  772. System guards its ports by means of an abstract bind operation, YellowBind, which demands 
  773. that users identify themselves convincingly before  further  interaction  occurs.  An
  774. abstract unbind operation, YellowUnbind, which constitutes the finalization step required 
  775. to conclude an interaction.
  776. ----------
  777. YellowAbstractService {joint-iso-ccitt           mhs(6) asdc(2) example(1) modules(0) 
  778. y-abstract-service(2)} DEFINITIONS IMPLICIT TAGS  ::=  BEGIN   --  Prologue   EXPORTS
  779. AuthenticateUser, Yellow-operation-1, ...  yellow-use;   IMPORTS  --  Example  Object
  780. Identifiers id-pt-y-use ---- FROM  ExampleObjectIdentifiers  {joint-iso-ccitt  mhs(6)
  781. asdc(2) example(1) modules(0) object-identifiers(0)}  --  Abstract  Service  Notation
  782. ABSTRACT-BIND, ABSTRACT-ERROR, ABSTRACT-OPERATION, PORT ---- FROM AbstractServiceNotation 
  783. {joint-iso-ccitt        mhs(6) asdc(2) modules(0) notation(1)};  -- Port type  yellow- 
  784. use PORT    CONSUMER INVOKES { Yellow-operation-1, ...} ::= id-pt-y-use  --  Abstract
  785. bind operation  Credentials ::= SET {            name     [0] IA5String, password [1] 
  786. IA5String}   YellowBind  ::=  ABSTRACT-BIND          TO   {yellow-use[S]}        BIND
  787. ARGUMENT  credentials   Credentials                       BIND-ERROR   ENUMERATED   {
  788. name-or-password-invalid(0)}  -- Abstract unbind operation  YellowUnbind ::= ABSTRACT- 
  789. UNBIND      FROM {yellow-use[S]}   --  Abstract  operations   Yellow-operation-1  ::=
  790. ABSTRACT-OPERATION ARGUMENT ... RESULT ...       ERRORS { yellow-error-1, ...} ...   - 
  791. - Abstract errors  yellow-error-1 ABSTRACT-ERROR PARAMETER ... ::= 1 ...  END  --  of
  792. YellowAbstractService
  793. A.4 Refinement of Green Environment
  794. The Green Environment, depicted in Figure 2/X.407, is formally refined below using the 
  795. OBJECT and REFINE macros.
  796. +----+ | 01 | | 02 | | 03 | | 04 | | 05 | | 06 | | 07 | | 08 | | 09 | | 10 | | 11 | | 12 
  797. | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 
  798. 25 | | 26 | | 27 | | 28 | | 29 | +----+
  799. Figure .F.:2/X.407 The Green Environment
  800. As the figure indicates and the ASN.1 specification below confirms, the Green Environment 
  801. can be modeled as an object which can be decomposed into one central object, the Green 
  802. System; any number of other, peripheral objects, green users; and any number  of  yet
  803. additional objects, green managers. The Green System interacts with green  users  and
  804. managers by means of its green-use ports, and with green managers (alone) by means of its 
  805. green-management ports.
  806. ----------
  807. GreenEnvironmentRefinement {joint-iso-ccitt      mhs(6) asdc(2) example(1) modules(0) 
  808. ge-refinement(3)} DEFINITIONS IMPLICIT TAGS ::= BEGIN   -  Prologue   EXPORTS  green-
  809. environment, green-environment-refinement, green-manager,  green-system,  green-user;
  810. IMPORTS -- Green Abstract Service                green-use, green-management ---- FROM 
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817. GreenAbstractService {joint-iso-ccitt            mhs(6) asdc(2) example(1) modules(0) 
  818. g-abstract-service(4)}  -- Example Object Identifie s  id-ot-g-environment,  id-ot-g-
  819. manager   id-ref-g-environment                       id-ot-g-user,           id-ot-g-
  820. system,      ----  FROM  ExampleObjectIdentifiers  {joint-iso-ccitt  mhs(6)   asdc(2)
  821. example(1) modules(0) object-identifiers(0)}     -- Abstract Service Notation OBJECT, 
  822. REFINE  ---- FROM AbstractServiceNotation {joint-iso-ccitt mhs(6) asdc(2)  modules(0)
  823. notation(1)};  -- Green Environment  green-environment OBJECT ::= id-ot-g-environment  -- 
  824. Green Environment refinement  green-environment-refinement REFINE green-environment AS 
  825. green-user    RECURRING green-manager RECURRING   green-system  green-use         [S]
  826. PAIRED WITH {green-user, green-manager} green-management [S] PAIRED WITH {green-manager} 
  827. ::= id-ref-g-environment  -- Component object types  green-user OBJECT PORTS { green-use 
  828. [C]}    ::= id-ot-g-user  green-manager OBJECT PORTS { green-u e         [C],  green-
  829. management [C]}  
  830. ::= id-ot-g-manager  green-system OBJECT         PORTS { green-use        [S], green 
  831. management [S]}         ::= id-ot-g-system  END -- of GreenEnvironmentRefinement
  832. A.5 Definition of Green Abstract Service
  833. The abstract service that the Green System provides to its users and managers is formally 
  834. defined below using the PORT and ABSTRACT-BIND, -OPERATION, and -ERROR macros.
  835. As the ASN.1 specification indicates, the abstract service that the Green System provides 
  836. comprises ports of two kinds, green-use and green-management. A port of  either  kind
  837. comprises a number of abstract operations which collectively report a number of abstract 
  838. errors. The Green System guards its ports  by  means  of  abstract  bind  operations,
  839. AuthenticateUser and AuthenticateManager, which demand that users and managers identify 
  840. themselves convincingly before further interaction  can  occur.  No  abstract  unbind
  841. operations are specified, indicating that no finalization step is required to conclude an 
  842. interaction.
  843. ----------
  844. GreenAbstractService {joint-iso-ccitt            mhs(6) asdc(2) example(1) modules(0) 
  845. g-abstract-service(4)} DEFINITIONS IMPLICIT TAGS  ::=  BEGIN   --  Prologue   EXPORTS
  846. AuthenticateManager, AuthenticateUser, green-management, Green-management-operation-1, 
  847. ... green-use, Green-use-operation-1, ...;  IMPORTS -- Example Object Identifiers id-pt- 
  848. g-use, id-pt-g-management ---- FROM ExampleObjectIdentifiers {joint-iso-ccitt  mhs(6)
  849. asdc(2) example(1) modules(0) object-identifiers(0)} -- Abstract Service Notation PORT, 
  850. ABSTRACT-BIND, ABSTRACT-OPERATION, ABSTRACT-ERROR ----  FROM  AbstractServiceNotation
  851. {joint-iso-ccitt        mhs(6) asdc(2) modules(0) notation(1)};  -- Port types  green- 
  852. use PORT    CONSUMER INVOKES { Green-use-operation-1, .. }  ::=  id-pt-g-use   green-
  853. management PORT CONSUMER INVOKES {                green-management-operation-1,  ...}
  854. ::= id-pt-g-management  -- Abstract bind operations  Credentials ::= SET { name     [0] 
  855. IA5String,  password [1]  IA5String}   AuthenticateUser  ::=  ABSTRACT-BIND  ARGUMENT
  856. credentials  Credentials  BIND-ERROR   ENUMERATED   {    name-or-password-invalid(0)}
  857. AuthenticateManager ::= ABSTRACT-BIND  ARGUMENT  credentials  Credentials  BIND-ERROR
  858. ENUMERATED {                                     name-or-password-invalid(0 ,  not-a-
  859. manager           (1)}  -- Abstract operations  Green-use-operation 1  ::=  ABSTRACT-
  860. OPERATION ARGUMENT ...  RESULT ...               ERRORS  {  green-error-1,  ...}  ...
  861. Green-management-operation-1 ::= ABSTRACT-OPERATION ARGUMENT ... RESULT ... ERRORS  {
  862. green-error-1, ...} ...  -- Abstract errors  green-error-1 ABSTRACT-ERROR PARAMETER ... 
  863. ::= 1 ...  END -- of GreenAbstractService
  864. A.6 Refinement of Yellow System
  865. The Yellow System, depicted in Figure 3/X.407, is formally refined below using the OBJECT 
  866. and REFINE macros.
  867. +----+ | 01 | | 02 | | 03 | | 04 | | 05 | | 06 | | 07 | | 08 | | 09 | | 10 | | 11 | | 12 
  868. | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 
  869. 25 | | 26 | | 27 | | 28 | | 29 | +----+
  870. Figure .F.:3/X.407 The Yellow System
  871. As the figure indicates and the ASN.1 specification confirms, the Yellow System, when 
  872. examined closely, has components. In particular, the Yellow System comprises the Green 
  873. System and green managers, augmented by objects of an as yet unseen variety, agent. An 
  874. agent serves as an intermediary between the Green System and a yellow user. It might be 
  875. thought of as adding value to the Green System. In any case, it is a  provider  of  a
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887. yellow-use port and a consumer of a green-use port.
  888. ----------
  889. YellowSystemRefinement {joint-iso-ccitt          mhs(6) asdc(2) example(1) modules(0) 
  890. ys-refinement(5)} DEFINITIONS IMPLICIT TAGS ::= BEGIN  --  Prologue   EXPORTS  agent,
  891. yellow-system-refinement;  IMPORTS -- Yellow  Environment  Refinement  yellow-system,
  892. yellow-use               ----                      FROM   YellowEnvironmentRefinement
  893. {joint-iso-ccitt        mhs(6) asdc(2) example(1) modules(0) ye-refinement(1)} -- Green 
  894. Environment  Refinement                            green-management,   green-manager,
  895. green-system, green-use                          ---- FROM GreenEnvironmentRefinement 
  896. {joint-iso-ccitt        mhs(6) asdc(2)  example(1)  modules(0)  ge-refinement(3)}  --
  897. Example Object Identifiers                        id-ot-agent,  id-ref-y-system  ----
  898. FROM ExampleObjectIdentifiers {joint-iso-ccitt   mhs(6) asdc(2) example(1) modules(0) 
  899. object-identifiers(0)}   --   Abstract   Service   Notation   OBJECT,   REFINE   FROM
  900. AbstractServiceNotation   {joint-iso-ccitt            mhs(6)    asdc(2)    modules(0)
  901. notation(1)};  -- Yellow System refinement  yellow-system-refinement REFINE yellow-system 
  902. AS  agent RECURRING     yellow-use       [S] VISIBLE green-manag r  RECURRING  green-
  903. system green-use        [S] PAIRED WITH {agent, green-manager}  green-management  [S]
  904. PAIRED WITH {green-manager}                      ::=  id-ref-y-system   --  Component
  905. object type  agent OBJECT                        PORTS {  yellow-use  [S],  green-use
  906. [C]}    ::= id-ot-agent  END -- of YellowSystemRefinement
  907. A.7 Realization of Yellow System
  908. The abstract service of the Yellow System is formally realized below, by means of ROS, 
  909. using the APPLICATION-CONTEXT and APPLICATION-SERVICE-ELEMENT macros of Recommendation 
  910. X.219.
  911. As the ASN.1 specification indicates, the abstract service  that  the  Yellow  System
  912. provides is realized as a single ASE, yellow-use-ASE, and a single and corresponding AC, 
  913. yellow-use-AC. Each abstract bind operation, abstract operation, or abstract error in the 
  914. abstract service has a corresponding and equivalent bind operation, operation, or error, 
  915. respectively, in its ROS-based realization.
  916. Note that Integer values are assigned to the operations; the  corresponding  abstract
  917. operations require and received no such values.
  918. ----------
  919. YellowSystemRealization {joint-iso-ccitt         mhs(6) asdc(2) example(1) modules(0) 
  920. ys-realization(6)} DEFINITIONS IMPLICIT TAGS ::= BEGIN  -- Prologue  EXPORTS yellow-use- 
  921. AC, yellow-use-ASE;  IMPORTS -- Yellow Abstract Service Yellow-operation-1, ... yellow- 
  922. use,    YellowBind,                                    YellowUnbind     ----     FROM
  923. YellowAbstractService {joint-iso-ccitt           mhs(6) asdc(2) example(1) modules(0) 
  924. y-abstract-service(2)}  -- Example Object Identifiers id-ac-y-use, id-as-y-use, id-ase- 
  925. y-use ---- FROM ExampleObjectIdentifiers {joint-iso-ccitt mhs(6)  asdc(2)  example(1)
  926. modules(0) object-identifiers(0)}                -- Remote Operations APDUs rOSE ---- 
  927. FROM Remote-Operations-APDUs {joint-iso-ccitt     remote-operations(4)  apdus(1)}  --
  928. Association Control     aCSE, aCSE-AS ---- FROM  AssociationControl  {joint-iso-ccitt
  929. acse(2) .I.bs:Module  imports;to  be  supplied}      --  Remote  Operations  Notation
  930. Extension APPLICATION-CONTEXT, APPLICATION-SERVICE-ELEMENT ---- FROM Remote-Operations- 
  931. Notation-extensio   {joint-iso-ccitt                remote-operations(4)    notation-
  932. extension(2)};  -- Application context  yellow-use-AC APPLICATION-CONTEXT APPLICATION 
  933. SERVICE ELEMENTS {aCSE} BIND YellowBind 
  934. UNBIND YellowUnbind     REMOTE OPERATIONS {rOSE} INITIATOR CONSUM R  OF  {yellow-use-
  935. ASE}    ABSTRACT SYNTAXES {yellow-use-AS, aCSE-AS} ::=  id-ac-y-use   --  Application
  936. service element  yellow-use-ASE APPLICATION-SERVICE-ELEMENT CONSUMER INVOKES { yellow- 
  937. operation-1, ...}       ::= id-ase-y-use  yellow-operation-1 Yellow-operation-1 ::= 1 
  938. ...  -- Abstract syntax  yellow-use-AS OBJECT IDENTIFIER ::= id-as-y-use  END  --  of
  939. YellowSystemRealization
  940. A.8 Realization of Green System
  941. The abstract service of the Green System is formally realized below, by means of ROS, 
  942. using the APPLICATION-CONTEXT and APPLICATION-SERVICE-ELEMENT macros of Recommendation 
  943. X.219.
  944. As the ASN.1 specification indicates, the abstract service that the Green System provides 
  945. is realized as two ASEs, green-use-ASE and green-management-ASE, and two, corresponding 
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952. ACs, green-use-AC and green-management-AC. Each  abstract  bind  operation,  abstract
  953. operation, or abstract error in the abstract service has a corresponding and equivalent 
  954. bind operation, operation, or error, respectively, in its ROS-based realization.
  955. Note that Integer values are assigned to the operations; the  corresponding  abstract
  956. operations require and received no such values.
  957. ----------
  958. GreenSystemRealization {joint-iso-ccitt          mhs(6) asdc(2) example(1) modules(0) 
  959. gs-realization(7)} DEFINITIONS IMPLICIT TAGS ::= BEGIN  -- Prolog e   EXPORTS  green-
  960. management-AC, green-management-ASE, green-use-AC, green-use-ASE;  IMPORTS  --  Green
  961. Abstract         Service                                         AuthenticateManager,
  962. AuthenticateUser,       green-management, Green-management-operation-1, ... green-use, 
  963. Green-use-operation-1,  ...                        ----   FROM   GreenAbstractService
  964. {joint-iso-ccitt        mhs(6) asdc(2) example(1) modules(0) g-abstract-service(4)} -- 
  965. Example Object  Identifiers                        id-ac-g-use,         id-ase-g-use,
  966.   id-as-g-use                                       id-ac-g-management,     id-ase-g-
  967. management, id-as-g-management                   ----  FROM  ExampleObjectIdentifiers
  968. {joint-iso-ccitt        mhs(6) asdc(2) example(1) modules(0) object-identifiers(0)} -- 
  969. Remote Operations APDUs                          rO E  ----  FROM  Remote-Operations-
  970. APDUs {joint-iso-ccitt  remote-operations(4) apdus(1)} -- Association  Control  aCSE,
  971. aCSE-AS ---- FROM AssociationControl {joint-iso-ccitt acse(2) .I.bs:Module imports;to be 
  972. supplied}   -- Remote Operations Notation Extension APPLICATION-CONTEXT, APPLICATION 
  973. SERVICE-ELEMENT         ---- FROM Remote-Operations-Notation-extension {joint-iso-ccitt 
  974. remote-operations(4) notation-extension(2)};  -- Application  contexts   green-use-AC
  975. APPLICATION-CONTEXT     APPLICATION SERVICE ELEMENTS {aCSE} BIND AuthenticateUser UNBIND 
  976. NoOperation REMOTE OPERATIONS {rOSE}             INITIATOR CONSUMER OF {green-use-ASE} 
  977.     ABSTRACT SYNTAXES {green-use-AS, aCSE-AS}    ::= id-ac-g-use  green-management-AC 
  978. APPLICATION-CONTEXT     APPLICATION SERVICE ELEMENTS {aCSE} BIND  AuthenticateManager
  979. UNBIND NoOperati n       REMOTE  OPERATIONS  {rOSE}  INITIATOR  CONSUMER  OF  {green-
  980. management-ASE}         ABSTRACT SYNTAXES {green-management-AS, aCSE-AS} ::= id-ac-g 
  981. management  NoOperation ::= UNBIND  -- Application  service  elements   green-use-ASE
  982. APPLICATION-SERVICE-ELEMEN                        CONSUMER   INVOKES   {   green-use-
  983. operation-1, ...}       ::= id-ase-g-u e   green-management-ASE  APPLICATION-SERVICE-
  984. ELEMENT CONSUMER INVOKES {                        green-management-operation-1,  ...}
  985. ::= id-ase-g-management  green-use-operation-1 Green-use-operation-1 ::= 1 ...  green- 
  986. management-operation-1 Green-management-operation-1 ::= 50 ...  -- Abstract  syntaxes
  987. green-use-AS        OBJECT IDENTIFIER  ::=  id-as-g-use   green-management-AS  OBJECT
  988. IDENTIFIER ::= id-as-g-management  END -- of GreenSystemRealization
  989.  
  990. Annex B (to Recommendation X.407) Reference Definition of Object Identifiers
  991. This annex is an integral part of this Recommendation.
  992. This annex defines for reference purposes various Object Identifiers cited in the ASN.1 
  993. modules of annex C. It uses ASN.1.
  994. With the exception of  those  assigned  in  annex  A,  all  Object  Identifiers  this
  995. Recommendation assigns are assigned in this annex. The annex is definitive for all but 
  996. those for ASN.1 modules and the subject of application service definition conventions 
  997. itself. The definitive assignments for the former occur in the modules themselves; other 
  998. references to them appear in IMPORT clauses. The latter is fixed.
  999. ----------
  1000. .I.mo:ASDCObjectIdentifiers; {joint-iso-ccitt    mhs( )  asdc(2)  modules(0)  object-
  1001. identifiers(0)} DEFINITIONS IMPLICIT TAGS ::= BEGIN  -- Prologue  -- Exports everything. 
  1002. IMPORTS -- nothing -- ;  .I.ty:ID; ::= OBJECT IDENTIFIER  -- Abstract Service Definition 
  1003. Conventions (not definitive)  .I.va:id-asdc; ID ::= {joint-iso-ccitt mhs(6) asdc(2)} -- 
  1004. not definitive  -- Categories  .I.va:id-mod; ID  ::=  {id-asdc  0}  --  modules;  not
  1005. definitive .I.va:id-ex;  ID ::= {id-asdc 1} -- example; not  definitive   --  Modules
  1006. .I.va:id-mod-object-identifiers; ID ::= {id-mod 0}  -  not  definitive  .I.va:id-mod-
  1007. notation;           ID ::= {id-mod 1} -- not definitive  END -- of ASDCObjectIdentifiers
  1008.  
  1009. Annex C (to Recommendation X.407) Reference Definition of Notation
  1010. This annex is an integral part of this Recommendation.
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022. This annex, a supplement to section two, defines for reference purposes the notation for 
  1023. specifying abstract models and services. It employs ASN.1.
  1024. ----------
  1025. .I.mo:AbstractServiceNotation;   {joint-iso-ccitt     mhs(6)    asdc(2)    modules(0)
  1026. notation(1)} DEFINITIONS IMPLICIT TAGS ::= BEGIN  -- Prologue  EXPORTS ABSTRACT-BIND, 
  1027. ABSTRACT-ERROR, ABSTRACT-OPERATION, ABSTRACT-UNBIND, OBJECT, PORT, REFINE;  IMPORTS -- 
  1028. Remote Operations Notation                       BIND, ERROR, OPERATION, UNBIND  ----
  1029. FROM Remote-Operation-Notation {joint-iso-ccitt   remote-operations(4)  notation(0)};
  1030. -- Object macro  .I.ma:OBJECT; MACRO ::= BEGIN  TYPE  NOTATION ::= "PORTS" "{" PortList 
  1031. "}" | empty VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER)  PortList       ::= Port 
  1032. "," PortList | Port Port           ::=  value  (PORT)  PortType   PortType        ::=
  1033. Symmetric | Asymmetric  Symmetric      ::= empty Asymmetric     ::= Consumer | Supplier 
  1034. Consumer       ::= "[C]" Supplier       ::= "[S]"  END  -- Port macro  .I.ma:PORT; MACRO 
  1035. ::= BEGIN  TYPE  NOTATION ::= Operations | empty VALUE NOTATION ::= value (VALUE OBJECT 
  1036. IDENTIFIER)  Operations     ::= Symmetrical | Asymmetrical  Symmetrical    ::= "ABSTRACT" 
  1037. "OPERATIONS" "{" OperationList "}" Asymmetrical   ::= OneSided |  TwoSided   OneSided
  1038. ::= Consumer | Supplier TwoSided       ::=  Consumer  Supplier  |  Supplier  Consumer
  1039. Consumer       ::= "CONSUMER" "INVOKES"  "{"  OperationList  "}"  Supplier        ::=
  1040. "SUPPLIER"  "INVOKES"  "{"  OperationList  "}"   OperationList   ::=  Operation   ","
  1041. OperationList | Operation Operation      ::= value (ABSTRACT-OPERATION)  END  -- Refine 
  1042. macro  .I.ma:REFINE; MACRO ::= BEGIN  TYPE  NOTATION ::= Object "AS" ComponentList VALUE 
  1043. NOTATION ::= value (VALUE OBJECT IDENTIFIER)  ComponentList  ::= Component ComponentList 
  1044. | Component Component      ::= ObjectSpec PortSpecList  ObjectSpec     ::=  Object  |
  1045. Object "RECURRING"  PortSpecList   ::=  PortSpec  PortSpecList  |  PortSpec  PortSpec
  1046. ::= value (PORT) PortType PortStatus  PortType       ::= Consumer | Supplier |  empty
  1047. Consumer       ::= "[C]" Supplier       ::= "[S]"   PortStatus      ::=  "VISIBLE"  |
  1048. "PAIRED" "WITH" ObjectList  ObjectList     ::= Object "," ObjectList | Object  Object
  1049.   ::= value (OBJECT)  END  -- Abstract bind,  unbind,  operation,  and  error  macros
  1050. .I.ma:ABSTRACT-BIND; MACRO ::= BEGIN  TYPE NOTATION  ::= Ports Bind VALUE NOTATION ::= 
  1051. value (VALUE BindType)  Ports          ::= "TO" "{" PortList  "}"  |  empty  PortList
  1052. ::= Port "," PortList | Port Port           ::= value (PORT) PortSide PortSide       ::= 
  1053. Consumer | Supplier | empty Consumer       ::= "[C]" Supplier       ::=  "[S]"   Bind
  1054.    ::= type (BindType) -- must be a BIND type                    | empty <BindType ::= 
  1055. BIND>  END  .I.ma:ABSTRACT-UNBIND; MACRO ::= BEGIN  TYPE NOTATION  ::= Ports Unbind VALUE 
  1056. NOTATION ::= value (VALUE UnbindType)  Ports          ::= "FROM" "{" PortList "}" | empty 
  1057. PortList       ::= Port "," PortList | Port Port           ::= value (PORT)  PortSide
  1058. PortSide       ::= Consumer | Supplier |  empty  Consumer        ::=  "[C]"  Supplier
  1059. ::=  "[S]"   Unbind          ::=  type  (UnbindType)  --  must  be  an  UNBIND   type
  1060.   | empty <UnbindType ::= UNBIND>  END  .I.ma:ABSTRACT-OPERATION; MACRO ::= OPERATION 
  1061. .I.ma:ABSTRACT-ERROR;     MACRO ::= ERROR  END -- of AbstractServiceNotation
  1062.  
  1063. Annex D (to Recommendation X.407) Differences Between CCITT  Recommendation  and  ISO
  1064. Standard
  1065. This annex is not a part of this Recommendation.
  1066. This annex lists all but the purely stylistic differences between this Recommendation and 
  1067. the corresponding ISO International Standard.
  1068. No differences between the two specifications exist.
  1069. CCITT Draft Recommendation X.407 MHS: Abstract Service Definition Conventions (Version 5, 
  1070. November 1987, Gloucester)
  1071. -- --
  1072. Annex E (to Recommendation X.407) Index
  1073. This annex indexes this Recommendation. It gives the number(s) of the page(s) on which 
  1074. each item in each of several categories is defined. Its coverage of each category  is
  1075. exhaustive.
  1076. This annex indexes items (if any) in the following categories:
  1077. a)  Abbreviations (ab)
  1078. b)  Terms (gt)
  1079. c)  Information items (ot)
  1080. d)  ASN.1 modules (mo)
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087. e)  ASN.1 macros (ma)
  1088. f)  ASN.1 types (ty)
  1089. g)  ASN.1 values (va)
  1090. h)  Bilateral agreements (ba)
  1091. i)  Items for further study (fs)
  1092. j)  Items to be supplied (fs)
  1093. ----------
  1094. .Begin Index.
  1095. Abbreviations
  1096. AC  2
  1097. APDU  1
  1098. ASE  2
  1099. ASN.1  2
  1100. OSI  2
  1101. ROS  2
  1102. Terms
  1103. abstract bind operation  8
  1104. abstract error  10
  1105. abstract model  4
  1106. abstract object  4
  1107. abstract operation  9
  1108. abstract port  5
  1109. abstract procedure  7
  1110. abstract refinement  6
  1111. abstract service  6
  1112. abstract service provider  6
  1113. abstract service user  6
  1114. abstract unbind operation  8
  1115. argument  7
  1116. asymmetric  5
  1117. binding  5
  1118. bound  5
  1119. consumer  5
  1120. error information  8
  1121. initiator  8
  1122. invocation  7
  1123. invoker  7
  1124. match  5
  1125. model  4
  1126. object  4
  1127. parameter  10
  1128. performance  7
  1129. performer  7
  1130. port  5
  1131. procedure  7
  1132. provider  6
  1133. real  11
  1134. refinement  6
  1135. responder  8
  1136. result  7
  1137. supplier  5
  1138. symmetric  5
  1139. unbinding  5
  1140. user  6
  1141. Information Items
  1142. None
  1143. ASN.1 Modules
  1144. AbstractServiceNotation  28
  1145. ASDCObjectIdentifiers  27
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157. ASN.1 Macros
  1158. ABSTRACT-BIND  8, 29
  1159. ABSTRACT-ERROR  10, 29
  1160. ABSTRACT-OPERATION  9, 29
  1161. ABSTRACT-UNBIND  9, 29
  1162. OBJECT  4, 28
  1163. PORT  5, 28
  1164. REFINE  6, 29
  1165. ASN.1 Types
  1166. ID  27
  1167. ASN.1 Values
  1168. id-asdc  27
  1169. id-ex  27
  1170. id-mod  27
  1171. id-mod-notation  27
  1172. id-mod-object-identifiers  27
  1173. Bilateral Agreements
  1174. None
  1175. Items for Further Study
  1176. None
  1177. Items to Be Supplied
  1178. Module imports  24, 25
  1179. .End Index.
  1180. ÇîvÄq      lû   í h=   Q d#^  4^_]
  1181.   l
  1182.   æ
  1183. U  @ Ç @ Ç @ Ç B  B    @ ! Ç ! É æ
  1184. Γ
  1185.   ±
  1186. v      që   ÿ l
  1187.    g¿
  1188.    
  1189.    
  1190. c    S a[    @ Ç          @ @ Ç @ Ç @ Ç [ â yï     w     r    ^ mC   I hL   M c∞   ≥ ^⌡ 
  1191. [    @  @ Ç @ Ç @ Ç @ Ç @ Ç     ⌡ ÷ vä   è qÅ   É l    Y gπ   Σ bÄ   ö ]ù   ÿ Xf 
  1192.  
  1193.  Recommendation  X.407  and  ISO  10021-3,  Information  processing   systems.   Text
  1194.     Communication-MOTIS-Abstract Service Definition Conventions, were developed     in 
  1195. close collaboration and are technically aligned.
  1196.  
  1197.